﻿using System;
using System.Collections.Generic;
using DotNetOpenAuth.Messaging;
using DotNetOpenAuth.OpenId.RelyingParty;
using DotNetOpenAuth.OpenId;
using System.Web.Mvc;

namespace Presentation.Web.UI.Authentication.OpenIdRelyingParty
{
    public interface IOpenIdRelyingPartyService
    {
        Channel Channel { get; }

        IAuthenticationRequest CreateRequest(Identifier userSuppliedIdentifier, Realm realm, Uri returnTo, Uri privacyPolicy);

        IEnumerable<IAuthenticationRequest> CreateRequests(Identifier userSuppliedIdentifier, Realm realm, Uri returnTo, Uri privacyPolicy);

        ActionResult AjaxDiscovery(Identifier userSuppliedIdentifier, Realm realm, Uri returnTo, Uri privacyPolicy);

        ActionResult ProcessAjaxOpenIdResponse();

        IAuthenticationResponse GetResponse();

        IAuthenticationResponse GetResponse(HttpRequestInfo request);
    }
}
